Repository navigation
Group linked Explore records in research history - #8287
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
[P2] Keep history complete when the source stores an identical replay。原 Explore writer 将完全相同的 finding 再次追加到日志。真实历史端点返回 13 个物理行、12 个唯一 event_id,next_cursor=null。 head 将去重后的 12 和后端的 13 比较,首读与重试均进入不完整状态。JSON 仍导出原 12 条,history_complete=false、refresh_failed=true,合法关联不再分组。 同条件 main 的读取完整、可重试和导出元数据正常。 让分页完整性使用与 HTTP total 一致的计量单位。在既有历史读取契约中区分物理行与唯一事件,再沿用事件身份验证去重。精确重放兼容旧日志,冲突内容和真正缺页仍应失败。
动机 / Motivation
在研究历史核对已确认、反驳或暂定结论的人,需要更少的重复标题,也需要可信的读取状态和导出。 同一问题的状态行与结论原本各占一条。历史写入方也能在合法日志中保存一条完全相同的重放,两种情况都需要正确处理。 正常对照中,12 条原始记录合成 7 个可展开条目。写入重放记录时,head 却把完整历史标为不完整。 改动包含研究历史读页、显示分组和既有浏览器场景。真实任务与结果原作者的写入路径保持各自职责。
改动思路 / Approach
只读历史先取完整分页,typed projection 消除精确重放并保留冲突拒绝。已有 node 关系只在显示阶段合并,搜索与导出仍按原始事件。 共享验重放有合理 owner。页覆盖总数却由服务器物理行产生,而新校验使用去重数,两个单位必须在同一契约对齐。 这是只读列表与本地导出改动。服务器原事件日志和分页 owner 在当前 diff 中保持原有计数语义。
具体改动 / Changes
基线为 32167518b3c2646fd9b6a3a6e0aaf74b258a7b70。沿现有设计中按实际身份分组、保留原结论与来源,以及独立完整读回的约束核对。 基线规范
- Recorded identity。 在相同合成 SQLite Goal 和真实日志的无重放对照中,12 条原始记录从 12 个显示条目缩为 7 个。窄屏可展开两个原事件及精确来源,独立尝试和孤立结论分别显示。
- Coverage fidelity。 原 Explore writer 将完全相同的 finding 再次追加到日志。真实历史端点返回 13 个物理行、12 个唯一 event_id,next_cursor=null。 head 将去重后的 12 和后端的 13 比较,首读与重试均进入不完整状态。JSON 仍导出原 12 条,history_complete=false、refresh_failed=true,合法关联不再分组。 同条件 main 的读取完整、可重试和导出元数据正常。
- Readable expansion。 桌面和 390px 合成打包读回,展开的 2 个原记录及证据 ID 可达。
关键代码讲解
共享身份判断移到页合并时使用,读取器仍需按 source 的单位验证覆盖。
分组消费已有 node 关系,匹配和下载保留原事件。
独立的会话场景补两条消息的时间戳,真实 history merge 能继续排序。
对主干的风险 / Risks
核心风险在完整性判断。合法重放在现有 writer 和读取接口都可出现,快照并未少页。把它当成刷新失败会让用户重试,也会改变导出的证据范围声明。正常无重放时,关联组和原始事件都能读回。
PASS。12 个 Explore TS 用例和打包的记录搜索、显示语言、基准历史读回、会话活动均通过。独立正常分组对照通过。 Quick premerge 的 4 项直接检查和 4 项选中检查通过。 与当前 main 94b91e4 的合成无冲突。实际合成保留本次 patch 的全部字节,Explore writer、HTTP 读取与设计基线均未被这次主干更新触及。 基线与 head 的主题审计均报相同三处既有 report-reviews.css 引用,独立保留。同一旧 wheel 的会话旧场景在发送入口超时,采用修正 fixture 的匹配运行通过。 远端 CI 未取样。
我的整体评价 / Verdict
请求修改。正常的显示分组确实减少重复,请先修复完整源的误报。 修复原始行与唯一事件的完整性边界并重验两种重放、冲突和缺页后可复审。真实用户安装和模型行为留待验证。
我对照查看了相同长标题、多项混合状态的打包截图。1440 与 390 像素的正常历史少了重复标题,反驳与生命周期同时可见,窄屏能读到展开的原文、证据来源和后续条目。带精确重放的历史错误显示刷新失败,仍列 12 个条目。 范围限于隔离合成历史和这两个视口。其他主题及已安装用户数据尚未验证。
English verdict: REQUEST_CHANGES. 58be771 improves grouping for a clean history, but a persisted identical replay makes a complete real HTTP result appear incomplete and mislabels the export. Preserve source coverage while deduplicating presentation.
…y-grouped-records-20261107 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
在研究工作台核对一个问题的过程和结论时,重复标题增加扫读成本;如果历史读完却被标为不完整,读者也很难判断导出是否可信。 原先一个问题和明确指向它的结论各占一行。上一版开始合并显示,却把去重后的事件数与服务的源记录数比较。日志含一条精确重放时,完整页会误报刷新失败。 打包版对照中,5 行源记录完整读入,列表显示 3 个条目,4 个不同事件原样导出;冲突和缺页仍给出刷新失败。 改动限于研究历程的只读分页、列表和既有验证,不改变 Explore 写入、原文或关系,也不启动实验或生成研究判断。
改动思路 / Approach
服务继续拥有原始快照和分页总数,既有 TypeScript Explore 投影拥有事件身份,条目分组只由研究列表消费。 界面保留可信的上次快照和原始导出;没有新接口、写入方、调度规则或第二份证据。 从现有研究页一次打开「全部已读记录」即可阅读;筛选仍针对原事件,查看一组原文只需展开该条目。采用实际记录的 node 和 finding 身份,不借同名或相近时间推断关系。相比取消去重或增加接口,在原有读取器区分源记录覆盖与事件身份即可保留两层语义。
具体改动 / Changes
关键代码讲解
- 分页读取器 按服务的源记录总数检查完整性,保留顺序用于版本校验;身份合并 只折叠内容一致的重放。同一事件身份的冲突立即失败;只有所有已声明的不同事件都已拿到时,才接受超额传输中的精确重放。
researchRecordGroups从既有显式链接选唯一结论;多个结论、已知运行冲突、相同标题的独立尝试继续分开。已读不全时不根据剩余记录猜组。GroupedResearchRecord并列显示已记录的结论和问题状态;可展开每条原文及来源,Escape 回到该条。匹配和导出仍读原始事件,刷新失败时保留上一次完整快照并明确标记。
按基线 docs/development/design.md 核对,版本 c0b6aded5d173dd474a22ff0b33955d4d93a7732。READ-IDENTITY:组用记录的真实身份,独立同名和冲突运行保留。READ-EVIDENCE:反驳与暂定结果可读,展开后可核对确切原文和来源。READ-COVERAGE:时间跨度和范围仍来自原记录;显示组数不代替可导出的证据总数。
对主干的风险 / Risks
上一版的阻断 已在当前提交 1c71b8b40615da719fc3bcd909a22009636e2dd6 对照验证:现有 HTTP 读取器返回 5 行实际写入的源记录,包含同一事件的精确重放;页面报告 5/5,导出完整且未过期的 4 个不同事件。额外插入同一页重放仍得到完整快照;同身份改内容和真实缺一行均拒绝,保留旧快照并标记刷新失败。原有 503 后重试成功。最重要的风险是把缺失或冲突伪装成完整;本次保留同 Goal、稳定总数和游标检查,没有改成「见过某个事件就算读完」。读取合法快照仍信任其现有服务端总数与游标。
PASS:标准预合并 4 个直接检查、17 个选定检查;打包研究搜索、双语和真实 benchmark 样本三场景;12 项 Explore 单测、22 项本地/关联来源测试;TS 类型检查与主题检查。浏览器拦截只用于重复交付、冲突和缺页反例,持久重放由真实本地读取器提供。没有咨询远端 CI。
语义与 CI 对齐
继续使用原有 Explore 类型、状态和关系。唯一新区分是现有接口的源记录数与已读事件数各自使用自己的单位,没有增加公开协议字段或义务。
我的整体评价 / Verdict
长程执行与研究结论的依据保持不变;更好的是读者能少扫重复标题,同时保有原文与可信的完整性。对照检查了完整桌面列表、窄屏原文展开和重复源记录场景:条目数与原记录数分开,反驳、已收束和暂定状态仍能扫到。 可公开截图来自合成来源和隔离打包版;未据此认定当前本机安装、生产模型行为或跨主题布局已经验收。 十个文件中核心改动在只读分页与列表,验证复用现有场景。没有发现需要继续阻断的问题。
English verdict: APPROVE 1c71b8b40615da719fc3bcd909a22009636e2dd6. The persisted replay regression is resolved; packaged recovery and local premerge passed with no blocking finding.
Problem
In Research → All loaded records, a node and its explicitly linked finding can repeat the same question. Readers still need the exact source records and an accurate account of what loaded. A valid Explore log can also contain an identical replay. The history endpoint counts stored rows, so comparing its total with deduplicated event IDs made a complete read look incomplete.
Change
Group a node with a single explicitly linked finding when their recorded run identities do not conflict. Keep each original event accessible, and keep search and export independent of how the list is grouped.
Verify full source coverage using the stored rows, and deduplicate exact event identities for reading and export. A source with five rows and one stored replay is complete and exports four events. Identical overlap between pages can still be accepted if all reported events are present. Conflicting payloads and short pages leave the last complete read visible with a refresh failure.
Validation
1c71b8b40615da719fc3bcd909a22009636e2dd6(application and runtime bytes match the isolated wheel build); tested againstc0b6aded5d173dd474a22ff0b33955d4d93a7732.Visual evidence
The desktop before/after and expanded narrow view show the same synthetic 12-record history with mixed finding states. The clean-history layout from
9202e66b7b22cac7a9613eb8325c6282c89007a4is unchanged; the new narrow capture shows the persisted replay case on the packaged candidate.Before, desktop
After, desktop
After, expanded at 390 px
Stored replay at 390 px: three entries, four original events
Author verification by model agent
gpt-6.1-sol.